The invention relates generally to computer system storage and, more particularly but not by way of limitation, to techniques (methods and devices) that provide the ability to change a computer system""s file system configuration from a first configuration to a second configuration wherein the two configurations share resources.
One function of a computer file system is to allocate and manage secondary memory for the storage and retrieval of data. Controlled by the operating system kernel, a typical file system includes a boot block (optional), a super block, an object list and data blocks.
The boot block occupies a well-known and previously specified area of disk storage (which may or may not be included in the area managed by the file system). It is typically the first sector of a disk, and may contain the bootstrap code that is read into the computer system""s main memory and executed during system start up operations, often before the file system is initialized.
The super block is stored in an area of disk storage assigned to the file system and at a previously specified location relative to the start of the area managed by the file system. The super block describes the storage to be used by the file system, system-wide parameters of the file system and how to find the object list. In the file system, objects typically are files or directories.
The object list is a list of object names each paired with a pointer to that object""s attributes (hereinafter referred to as the objects"" inodes). The object list is stored in a disk location indicated (directly or indirectly) in the super block. Each inode contains the information necessary for a process to access a file or directory, such as file ownership, access rights, file size, and location of the file""s data in the file system. One inode is the root inode of the file system. It is this inode through which the directory structure of the file system is accessible after the file system is mounted (i.e., made available or booted).
Data blocks contain the file and directory data and administrative data associated with the file system.
Some prior art file systems allow users (e.g., system administrators) to modify the configuration of an operational file system to include one or more additional storage units (or volumes). Still other prior art file systems allow users to move data stored on existing storage devices to a newly added storage unit. No known file system, however, permits a user to migrate an operational file system from a first configuration to a second configuration wherein the first and second configuration share resources. In addition, no known file system permits a first file system configuration to be automatically migrated to a second configuration, without loss of data or access to that data during the migration operation, wherein the second configuration comprises fewer storage control units than the first configuration. These and other aspects of current file systems are overcome by a file system in accordance with the invention.
In one embodiment the invention provides a method to migrate objects from a first file system configuration to a second file system configuration. The method includes determining and specifying the second file system configuration, initializing the second file system configuration so that the first and second file system configurations are jointly active, identifying one or more objects in the first file system configuration to migrate to the second file system configuration and migrating (morphing) the one or more objects to the second file system configuration while allowing access to the objects through both the first and second file system configurations.
In another embodiment, the invention provides a method to share a resource between a first file system configuration and a second file system configuration. The method includes attempting to access the resource through the first file system configuration, determining the resource is associated with the second file system configuration and accessing the resource through the second file system configuration.
Objects and resources may comprise directory objects and file objects and may further include data and metadata. Further, methods in accordance with the invention may be stored in any media that is readable and executable by a programmable control device.